import axios from "axios";
import nProgress from "nprogress";
import "nprogress/nprogress.css";
import store from "@/store";
// 创建axios实例
const request = axios.create({
    baseURL: `${process.env.VUE_APP_BASE_API}/api`, // api的base_url
    timeout: 5000,
});

// request拦截器
request.interceptors.request.use(
    config => {
        // 在发送请求之前做些什么
        nProgress.start(); // 进度条开始

        // 每次发送请求,在请求头中携带userTempId
        config.headers.userTempId = store.state.user.userTempId;
        // 每次发送请求,在请求头中携带token
        if (store.state.user.token) {
            config.headers.token = store.state.user.token;
        }

        return config;
    },
    error => {
        // 对请求错误做些什么
        return Promise.reject(error);
    },
);

// response拦截器
request.interceptors.response.use(
    response => {
        // 对响应数据做点什么
        nProgress.done(); // 进度条结束
        if (response.data.code === 200) {
            return response.data.data;
        }
        return Promise.reject({ message: response.data.message });
    },
    error => {
        // 对响应错误做点什么
        nProgress.done(); // 进度条结束
        return Promise.reject(error);
    },
);

export default request;
